/*
 * TownValidatorTests.h
 *
 *  Created on: 01 Ιουν 2010
 *      Author: Sartios
 */

#ifndef TOWNVALIDATORTESTS_H_
#define TOWNVALIDATORTESTS_H_

#include <cppunit/extensions/HelperMacros.h>
#include <cppunit/TestFixture.h>

#include "../../../Validators/AddressValidators/TownValidators/ITownValidator.h"

class TownValidatorTests : public CppUnit::TestFixture {
	CPPUNIT_TEST_SUITE(TownValidatorTests);

	CPPUNIT_TEST(townNameHasAppropriateLength_LengthSmallerThanMinWordLength_ReturnFalse);
	CPPUNIT_TEST(townNameHasAppropriateLength_LengthBiggerThanMinWordLength_ReturnTrue);

	CPPUNIT_TEST(townNameContainsValidContent_ContentHasOnlyChars_ReturnTrue);
	CPPUNIT_TEST(townNameContainsValidContent_ContentHasLetters_ReturnFalse);
	CPPUNIT_TEST(townNameContainsValidContent_ContentHasSymbols_ReturnFalse);

	CPPUNIT_TEST_SUITE_END();

public:

	void	setUp();
	void	tearDown();

	void	townNameHasAppropriateLength_LengthSmallerThanMinWordLength_ReturnFalse();
	void	townNameHasAppropriateLength_LengthBiggerThanMinWordLength_ReturnTrue();

	void	townNameContainsValidContent_ContentHasOnlyChars_ReturnTrue();
	void	townNameContainsValidContent_ContentHasLetters_ReturnFalse();
	void	townNameContainsValidContent_ContentHasSymbols_ReturnFalse();

private:
	ITownValidator *townValidator_;
};

#endif /* TOWNVALIDATORTESTS_H_ */
